package cn.openea.perpartner.meily.web.entity.vo;

import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;

import java.io.Serializable;

/**
 * @author ysk
 * @version 1.0.1
 * @Description TODO
 * @createTime 2023年05月31日 13:08:00
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@SuperBuilder
public class WxPayVo implements Serializable {

    private static final long serialVersionUID = -2687671944279886359L;

    @ApiModelProperty(value = "用户id", name = "userid", example = "0507062149075060", required = true)
    private String userid;//用户id

    @ApiModelProperty(value = "商户订单号", name = "tradeNo", example = "160675802522101302264851810598")
    private String tradeNo;//商户订单号

    @ApiModelProperty(value = "退款订单号只在退款单时必须", name = "refundNo", example = "160675802522101302264851810595")
    private String refundNo;//退款订单号，只在退款单时有用

    @ApiModelProperty(value = "小程序身份openid", name = "openid", example = "oisk64zYcJz8Atp1P2VZefgHvM_4", required = true)
    private String openid;//小程序身份id

    @ApiModelProperty(value = "订单支付总金额（分）", name = "payPrice", example = "1", required = true)
    private String payPrice;//支付金额，单位分

    @ApiModelProperty(value = "退款金额只在退款单时必须（分）", name = "refundPrice", example = "1")
    private String refundPrice;//退款金额，单位分

    @ApiModelProperty(value = "订单详情", name = "tradeDesc", example = "YL2-测试商品-支付团购费用")
    private String tradeDesc;//订单详情

    @ApiModelProperty(value = "订单对应的商品id或主键值", name = "productID", example = "1580842896171601920")
    private String productID;//订单对应的商品id

    @ApiModelProperty(value = "订单对应的小程序打开地址", name = "productUrl", example = "pages_tabbar_contact/index_contact/pay")
    private String productUrl;//订单对应的小程序打开地址

    @ApiModelProperty(value = "订单对应的图片", name = "imageUrl", example = "https://www-1308272144.cos.ap-guangzhou.myqcloud.com/static/image/perpartner.png")
    private String imageUrl;//订单对应的图片

    @ApiModelProperty(value = "订单对应的商品更多信息补充JSON串", name = "goodsInfo", example = "{\"goodsNum\":\"3件\",\"goodsWeight\":\"0.85Kg\"}")
    private String goodsInfo;//订单对应的商品更多信息补充JSON串，可以为空

    @ApiModelProperty(value = "商家信息JSON串", name = "mchInfo", example = "{\"mchname\":\"最佳拍档平台\",\"mchimage\":\"https://www-1308272144.cos.ap-guangzhou.myqcloud.com/static/image/perpartner.png\"}")
    private String mchInfo;//商家信息JSON串，可以为空

    @ApiModelProperty(value = "订单的补充描述可为空", name = "remark", example = "YL2-测试商品-支付团购费用更详细更长的描述")
    private String remark;//订单的补充描述，可以为空

    @ApiModelProperty(value = "订单的额外信息JSON", name = "orderExtJson", example = "{\"key\":\"qqq\"}")
    private String orderExtJson;//订单的额外信息

    @ApiModelProperty(value = "调用支付接口时需要的授权token，获取token授权时可不传", name = "token", example = "f9b360fd1d9b77d76365b133e3505380")
    private String token;//调用支付接口时需要的授权token

    @ApiModelProperty(value = "调用支付接口时需要的前端鉴权密串，获取token授权时可不传", name = "authstr", example = "302b7ee02e1e9790b9101a7ebeb14167")
    private String authstr;//调用支付接口时需要的前端鉴权密串
}
